package edu.njust.dao;

import edu.njust.domain.StayRegister;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.sql.Timestamp;
import java.util.Date;
import java.util.List;

@Mapper

public interface StayRegisterMapper {
    //根据用户id查找未付款的StayRegisterID
    public	List<Integer> selectByUser(int passengerID);
    //修改付款
    public int updatebill(int id);
    //查询用于计算房间加商品消费
    public List<StayRegister> selectMoney(int id);
    //根据房间id查找StayRegisterID
    public	int selectByRoom(int roomID);
    //删除一条数据
    public int deleteById(int id);
    //插入基本数据
    public int insertAll(StayRegister stayRegister);
    //精确查询
    public	StayRegister selectById(int id);
    //更新
    //public int updateById(StayRegister stayRegister);
    //查询押金明细
    public List<StayRegister> selectDepositById(int id);
    //新增消费明细
    public int insertConsumptiondetails(StayRegister stayRegister);
    //消费明细分页
    //能查出stayregister的基本信息，这个登记人对应的账单consumptionId，消费数量，消费金额，消费时间
    //商品名称，商品价格和房号。
    //通过类来查数据，具体可以看select
    public List<StayRegister> pageConsumption(@Param("consumptionStayRegisterID")int consumptionStayRegisterID,
                                                @Param("start")int start,@Param("pageSize")int pageSize);
     //消费明细分页总条数
    	public int countConsumption(int consumptionStayRegisterID);
    //消费明细的删除
    public int deleteConsumption(Integer id);
    //修改总费用
    public int updateSumConst(@Param("id")int id,@Param("sumConst")Double sumConst);

    //数据统计,已结账的数据，时间在min到max之间
    public List<StayRegister> selectShuJuTongJi(@Param("min") Date min, @Param("max")Date max);
    //修改提示
    public int updateRemind(@Param("id")int id,@Param("remind")int remind);
    //结账 修改原信息
    public int pay(@Param("id")int id,@Param("remarks")String remarks,
                   @Param("payTime")Date payTime,@Param("payWay")int payWay);
    //根据 住宿登记id 来查询 总费用
    public double selectSumconst(int id);
    //根据 已结账 来查询 总费用 精简版条件 无条件
    public List<StayRegister> selectPayJingJianBan(@Param("min")Date min, @Param("max")Date max);
    //根据 已结账 来查询 旅客总消费。条件 结账区段
    public List<StayRegister> selectPayXiaoFei(@Param("min")Date min, @Param("max")Date max);

}
